home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C++ / Frameworks / GameShell / Sourcery / main.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-03  |  2.8 KB  |  122 lines  |  [TEXT/CWIE]

  1. #include "GameShell.h"
  2. #include "assert_mac.h"
  3.  
  4. // ---------------------------------------------------------------------------
  5.  
  6. static void MouseHandler(CP_Point *localCoords);
  7. static void MainWindowHandler();
  8. static void MenuInitHandler();
  9. static void MenuHandler(long menuCode);
  10. static void KeyDownHandler(long keyChar);
  11. static void InitToolBox();
  12.  
  13. // ---------------------------------------------------------------------------
  14.  
  15. void main() {
  16.     UserParameters *userInfo;
  17.  
  18.     InitToolBox();
  19.     
  20.     // Fill in parameter block
  21.     userInfo = (UserParameters*)NewPtr(sizeof(UserParameters));
  22.  
  23.     userInfo->windowWidth = 512;
  24.     userInfo->windowHeight = 384;
  25.     userInfo->preferredDepth = 8;
  26.     userInfo->minimumDepth = 4;
  27.     userInfo->useBackdrop = true;
  28.     userInfo->useBlackout = true;
  29.     userInfo->useMenuBar = true;
  30.  
  31.     userInfo->menuInitFunction            = MenuInitHandler;
  32.     userInfo->menuHandlerFunction        = MenuHandler;
  33.     userInfo->mainWindowUpdateFunction    = MainWindowHandler;
  34.     userInfo->mouseHandlerFunction        = MouseHandler;
  35.     userInfo->keyHandlerFunction        = KeyDownHandler;
  36.     userInfo->idleHandlerFunction        = NULL;
  37.  
  38.     if (GameShellInitialize(userInfo) != noErr) {
  39.         ASSERT(true);
  40.         ExitToShell();
  41.     }
  42.     DisposePtr((Ptr)userInfo);
  43.     
  44.     GameShellLoop();
  45.     
  46.     GameShellCleanup();
  47. }
  48.  
  49. // ---------------------------------------------------------------------------
  50.  
  51. void MouseHandler(CP_Point *localCoords) {
  52.     SysBeep(10);
  53. } // END MouseHandler
  54.  
  55. // ---------------------------------------------------------------------------
  56.  
  57. void MainWindowHandler() {
  58.     FillRect(&GameShellGetMainWindow()->portRect, &qd.dkGray);
  59. } // END MainWindowHandler
  60.  
  61. // ---------------------------------------------------------------------------
  62.  
  63. void MenuInitHandler() {
  64.     MenuHandle theMenu;
  65.     
  66.     // Apple menu
  67.     theMenu = GetMenu(128);
  68.     ASSERT(!(theMenu == NULL));
  69.     AddResMenu(theMenu, 'DRVR');
  70.     InsertMenu(theMenu, 0);
  71.     
  72.     // Game menu
  73.     theMenu = GetMenu(129);
  74.     ASSERT(!(theMenu == NULL));
  75.     InsertMenu(theMenu, 0);
  76. } // END MenuInitHandler
  77.  
  78. // ---------------------------------------------------------------------------
  79.  
  80. void MenuHandler(long menuCode) {
  81.     short menuID;
  82.     short menuItem;
  83.     
  84.     menuID = HiWord(menuCode);
  85.     menuItem = LoWord(menuCode);
  86.     
  87.     switch(menuID) {
  88.         case 128:
  89.         break;
  90.         
  91.         case 129:
  92.             switch(menuItem) {
  93.                 case 3: GameShellSetQuitFlag(true); break;
  94.             }
  95.         break;
  96.     }
  97. } // END MenuHandler
  98.  
  99. // ---------------------------------------------------------------------------
  100.  
  101. void KeyDownHandler(long keyChar) {
  102.     switch(keyChar) {
  103.         case '\t'://(char)9:
  104.         break;
  105.         
  106.         default:
  107.             GameShellSetQuitFlag(true);
  108.         break;
  109.     } // END switch
  110. } // END KeyDownHandler
  111.  
  112. // ---------------------------------------------------------------------------
  113.  
  114. void InitToolBox() {
  115.     InitGraf((Ptr) &qd.thePort);
  116.     InitFonts();
  117.     InitWindows();
  118.     InitMenus();
  119.     TEInit();
  120.     InitDialogs(0L);
  121.     InitCursor();
  122. } // END InitToolBox